package com.yinshu.teleshield.controller.helper;///*
// * Copyright 2021 Wicrenet, Inc. All rights reserved.
// */
//package com.yinshu.teleshield.tkbase.controller.helper;
//
//import com.alibaba.excel.context.AnalysisContext;
//import com.alibaba.excel.event.AnalysisEventListener;
//import com.yjx.cloud.common.core.exception.VerifyException;
//import com.yjx.cloud.user.domain.dto.StoreInfoFilterImportDTO;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.collections.CollectionUtils;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.stereotype.Component;
//import org.springframework.transaction.annotation.Transactional;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
///**
// * 【 B端 门店导入 】
// *
// * @author yangjunxiong
// * Created on 2021/10/11 11:24
// */
//@Slf4j
//@Component
//public class StoreInfoExeclImportListener extends AnalysisEventListener<StoreInfoFilterImportDTO> {
//
//    @Resource
//    private HttpServletRequest request;
//    List<StoreInfoFilterImportDTO> importDTOList = new ArrayList<>();
//
//    public StoreInfoExeclImportListener() {
//    }
//
//    /**
//     * 这个每一条数据解析都会来调用
//     *
//     * @param filterImportDTO
//     * @param context
//     */
//    @Override
//    public void invoke(StoreInfoFilterImportDTO filterImportDTO, AnalysisContext context) {
//        try {
//            Date now = new Date();
//            filterImportDTO.setNow(now);
//            try {
//                filterImportDTO.verify();
//            } catch (VerifyException e) {
//                throw new VerifyException(String.format("第%s行，异常:%s", context.readRowHolder().getRowIndex() + 1, e.getMessage()));
//            }
//            importDTOList.forEach(item->{
//                if (item.getName().equals(filterImportDTO.getName())) {
//                    throw new VerifyException(String.format("第%s行，异常:%s", context.readRowHolder().getRowIndex() + 1, "门店名称不能重复"));
//                }
//            });
//            if (!StringUtils.contains(filterImportDTO.getTimeStartEnd(), "-")) {
//                throw new VerifyException(String.format("第%s行，异常:%s", context.readRowHolder().getRowIndex() + 1, "营业时间错误 (必填,两位小数点,例:10:00-20:00)"));
//            } else {
//                String[] split = StringUtils.split(filterImportDTO.getTimeStartEnd(), "-");
//                if (split.length != 2) {
//                    throw new VerifyException(String.format("第%s行，异常:%s", context.readRowHolder().getRowIndex() + 1, "营业时间错误 (必填,两位小数点,例:10:00-20:00)"));
//                }
//            }
//            importDTOList.add(filterImportDTO);
//        } catch (Exception e) {
//            importDTOList.clear();
//            throw new VerifyException(e.getMessage());
//        }
//    }
//
//    /**
//     * 所有数据解析完成了 都会来调用
//     */
//    @Override
//    @Transactional
//    public void doAfterAllAnalysed(AnalysisContext context) {
//        try {
//            log.info("{}条数据，开始存储数据库！", importDTOList.size());
//            if (CollectionUtils.isNotEmpty(importDTOList)) {
//                for (StoreInfoFilterImportDTO filterImportDTO : importDTOList) {
////                        this.storeInfoService.saveOrUpdate(storeInfoEntity);
//                }
//            }
//            log.info("所有数据解析完成！");
//        } finally {
//            importDTOList.clear();
//        }
//    }
//}
